package com.tqz.rc.server.distributed;

/**
 * <p>distro一致性协议，该协议是阿里巴巴根据Paxos算法实现的一种简单的AP协议。
 * 该协议定位于临时数据的一致性，需要把数据存储到数据库或磁盘。
 *
 * <pre>Distro协议简介：
 * <li>1.客户端以服务为纬度向服务端注册，注册后每隔一段时间向服务端发送一次心跳，心跳需要带上注册服务的全部信息，在客户端看来，服务端节点对等，所以请求的节点是随机的。</li>
 * <li>2.客户端请求失败则换一个节点继续发送请求。</li>
 * <li>3.服务端节点都存储所有数据，但每个节点都只负责其中的一部分服务，在接收到客户端的写请求后，服务端节点会判断是否为自己负责，如果是则处理，否则交由负责的节点处理。</li>
 * <li>4.每个服务端节点主动发送健康检查到其他节点，响应的节点则被该节点视为健康节点。</li>
 * <li>5.服务端在接收到客户端心跳后，如果该服务不存在，则当作注册请求来处理。</li>
 * <li>6.服务端如果长时间未接收到客户端心跳，则下线该服务。</li>
 * <li>7.负责的节点在接收到服务注册，服务心跳等请求后将数据写入后即返回，后台异步同步数据至其他节点。</li>
 * <li>8.节点在收到读请求后直接读本地，无论数据是否最新版本。</li>
 *
 * <p>目前用于server端新节点启动的时候从其他服务器获取全量实例信息。
 *
 * @author tianqingzhao
 * @since 2021/9/29 11:45
 */
public class DistroProtocol {
}
